package com.my.bbs.service;

import com.my.bbs.entity.MyPost;
import com.my.bbs.entity.MyUser;
import com.my.bbs.util.PageQueryUtil;
import com.my.bbs.util.PageResult;
import com.my.bbs.util.Result;

import javax.xml.crypto.Data;
import java.util.List;

public interface MyPostService {

    /**
     * 保存帖子
     *
     * @param myPost
     * @return
     */
    int savePost(MyPost myPost);

    /**
     * 获取详情
     *
     * @param bbsPostId
     * @return
     */
    MyPost getMyPostById(Long bbsPostId);

    /**
     * 获取详情&浏览数加1
     *
     * @param bbsPostId
     * @return
     */
    MyPost getMyPostForDetail(Long bbsPostId);

    /**
     * 修改帖子
     *
     * @param myPost
     * @return
     */
    int updateMyPost(MyPost myPost);

    /**
     * 删除帖子
     *
     * @param userId
     * @param postId
     * @return
     */
    int delMyPost(Long userId, Long postId);

    /**
     * 首页帖子列表
     *
     * @param pageUtil
     * @return
     */
    PageResult getMyPostPageForIndex(PageQueryUtil pageUtil);

    /**
     * 近期热议帖子列表
     *
     * @return
     */
    List getHotTopicMyPostList();

    /**
     * 根据userId查询发布的所有帖子
     *
     * @return
     */
    List<MyPost> getMyPostList(Long userId);

    /**
     * 根据userId获取最近发帖列表
     *
     * @param userId
     * @return
     */
    List<MyPost> getRecentPostListByUserId(Long userId);

    /**
     *  管理员封禁帖子
     * @param post
     * @return
     */
    int bannedPost(MyPost post);

    /**
     * 解封
     * @param post
     * @return
     */
    Result unbannedPost(MyPost post);


    /**
     * 获取页面封禁的帖子
     * @param page
     * @return
     */
    PageResult getPageBannedPost(PageQueryUtil page);
}
